package com.stained.white.goat.app;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.view.Display;
import android.view.WindowManager;

/**
 * アプリケーション共通クラス.
 * @author stained white goat
 *
 */
public class ApplicationUtils {

    /**
     * コンストラクター.
     */
    private ApplicationUtils() {
        // コンストラクター実行不可
    }

    /**
     * デバッグモード判定.
     * @param context context
     * @return true : デバッグモード / false : デバッグモード以外
     */
    public static boolean isDebug(Context context) {
        ApplicationInfo info = new ApplicationInfo();
        try {
            info = context.getPackageManager().getApplicationInfo(context.getPackageName(), 0);
        } catch (NameNotFoundException e) {
            return false;
        }
        return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE;
    }

    /**
     * スクリーン幅取得.
     * @param context context
     * @return スクリーン幅
     */
    public static int getScreenWidth(Context context) {
        Display display = getDefaultDisplay(context);
        if (display == null) {
            return 100;
        }
        return getDefaultDisplay(context).getWidth();
    }

    /**
     * スクリーン高取得.
     * @param context context
     * @return スクリーン高
     */
    public static int getScreenHeight(Context context) {
        Display display = getDefaultDisplay(context);
        if (display == null) {
            return 100;
        }
        return getDefaultDisplay(context).getHeight();
    }

    /**
     * スクリーン取得.
     * @param context context
     * @return スクリーン
     */
    private static Display getDefaultDisplay(Context context) {
        WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        if (manager == null) {
            return null;
        }
        return manager.getDefaultDisplay();
    }
}
